package com.example.teacher.Converter;

import com.example.common.domain.dto.SignInDto;
import com.example.common.domain.pojo.Attendance;
import com.example.common.enums.SignInStatus;

import java.sql.Timestamp;

public class AttendanceConverter {

    public static Attendance convertToAttendance(SignInDto dto, String studentId) {
        Attendance attendance = new Attendance();

        attendance.setClassId(dto.getClassId());
        attendance.setCode(dto.getSignCode());                 // 签到码
        attendance.setStartTime(dto.getStartTime());            // 开始时间

        // 计算结束时间 = 开始时间 + 有效时长（分钟）
        long startMillis = dto.getStartTime().getTime();
        long endMillis = startMillis + (dto.getValidMinutes() * 60_000L); // 分钟转毫秒
        attendance.setEndTime(new Timestamp(endMillis));

        attendance.setValidMinutes(dto.getValidMinutes());

        // 设置学生信息（通常从登录上下文中获取）
        attendance.setStudentId(studentId);

        // 默认状态为未签到
        attendance.setStatus(SignInStatus.NOT_SIGNED);

        return attendance;
    }
}
